五天的 AD 系列在昨天告一段落啦🎉
今天要來迎接 AI 為我們的 CPTS 學習之旅安排的下一台靶機:Cronos!
其實在我們打 Forest 時,port 53 就出現過了><
但當時主題是 AD,我整個注意力都放在:
「哪些 port 可以幫助我判斷這台是不是加入 AD 的主機?」
「哪些 port 可以讓我辨認它是不是 Domain Controller?」
所以......就這樣忽視了 Port 53 QQ
這次在 Cronos,又遇到它了!!!(這次不能再閃過了吧!xddd)
port 53 代表目標機器有提供 DNS 相關服務, 那它能不能在滲透測試的過程中,成為我們的得力助手呢?
今天就來把這個被我在 Forest 略過的 port 53,好好補回來~~~ xddd
這是今天在 Cronos 機器拿到的 target ip:10.129.227.211

哇!!!這是我們的第一台medium等級機器耶!!!
拿到 Cronos 的 IP 了,照我們之前練過的流程走一遍囉~
sudo nmap -sN 10.129.227.211
-sN:只確認有沒有人在家,不掃 port。

看到 Host is up,確認在線上。
確認這台機器有回應之後,掃掃 port,看看有哪些門是開著的:
sudo nmap -p- -T4 10.129.227.211

sudo nmap -sC -sV -p 22,53,80 10.129.227.211
-sV:版本偵測——Nmap 會跟每個服務「對話」,問出它是什麼版本-sC:跑預設腳本——Nmap 內建針對特定服務的自動調查問卷
怎麼讀這個結果:
| 欄位 | 意思 |
|---|---|
| PORT | 哪個 port,後面 tcp 是通訊協定 |
| STATE | 狀態(open 代表有服務在跑) |
| SERVICE | 大概是什麼類型的服務 |
| VERSION | 服務的具體版本號 |
掃完 Nmap,看到三個 port 開著——照 Day 4 的習慣,每個 port 都跑一遍思路:
先想清楚:這是什麼 → 有什麼東西是我感興趣的 → 可以用什麼工具 → 有機會能拿到什麼
這是什麼: 遠端登入服務,可以拿到 shell。
我感興趣的是什麼 有沒有弱密碼、有沒有洩漏的金鑰。
但現在先跳過——SSH 需要帳密或金鑰才能進去,在沒有憑證之前先記下來,等後面拿到帳密再回來試。
這是什麼: DNS 服務——網路世界的電話簿,把網域名稱轉換成 IP 位址。
我感興趣的是什麼
Zone Transfer 是什麼?
簡單說——就是「把這台 DNS 伺服器知道的所有資訊一次給我」。
本來是 DNS 伺服器之間同步資料用的——主要 DNS 跟備援 DNS 要保持資料一致,所以主要的會定期把所有記錄同步給備援,這個過程就叫 Zone Transfer。
但如果設定不當——攻擊者也可以跟它要,一次取得這個 Zone 中公開的 DNS 記錄,包含不少子網域與其對應的 IP。原本要慢慢猜子網域,現在直接全部送出來 QQ
可以用什麼工具: dig
有機會拿到什麼: 子網域清單、內部 IP、有哪些服務
這是什麼
HTTP 網頁服務,任何人用瀏覽器都能連進來,是機器對外暴露最明顯的攻擊面。
我感興趣的是什麼
可以用什麼工具
robots.txt — 看網頁路徑ffuf / gobuster / dirb — 目錄爆破有機會拿到什麼
管理頁面、上傳功能、洩漏的帳密或版本資訊、可以執行指令的介面
先找子網域(DNS 列舉)← 今天做的
↓
再對重要的子網域做80 port型的調查 ← 明天做
↓
port 22:先記下來,等拿到帳密再回來
先找子網域,再針對重要子網域猜路徑,提升攻擊成功機率!
| 步驟 | 做什麼 | 為什麼先做 |
|---|---|---|
| Step 1 | 找網域名稱跟 DNS 伺服器 | 知道要查什麼、問誰 |
| Step 2 | dig CH TXT version.bind:查 DNS 版本號 |
說不定版本太舊有漏洞可以利用 |
| Step 3 | dig any:查所有記錄類型 |
快速摸底——看有沒有 MX、TXT 等額外資訊 |
| Step 4 | dig axfr:Zone Transfer |
設定不當就能一次拿到所有子網域(大獎!) |
| Step 5 | 把子網域加進 /etc/hosts |
才能用瀏覽器開這些子網域 |
Step 1 看情況選:
| 情況 | 指令 | 目的 |
|---|---|---|
| 只有 IP,不知道網域名稱 | dig -x IP @IP |
PTR 反向查詢,IP → 網域名稱 |
| 知道網域,找 DNS 伺服器 | dig ns 網域 @IP |
確認誰是 DNS 伺服器 |
dig -x 10.129.227.211 @10.129.227.211
dig:DNS 查詢工具-x:反向查詢——平常是「名字 → IP」,這裡反過來「IP → 名字」10.129.227.211:要查詢的 IP(靶機的 IP)@10.129.227.211:直接問這台機器自己(不去問 Google 的 DNS,因為 cronos.htb 是靶機自己管理的假網域,公開 DNS 不知道)

ANSWER SECTION:PTR → ns1.cronos.htb
ns1.cronos.htb——ns1:這台機器的主機名稱.cronos.htb:它所在的網域AUTHORITY SECTION:NS → ns1.cronos.htb
ns1.cronos.htb」ADDITIONAL SECTION:A → 10.10.10.13
ns1.cronos.htb 的 A 記錄指向 10.10.10.13——。這是 DNS 裡記錄的 IP,但我們現在實際連線的目標還是 Lab 分配給我們的 10.129.227.211。知道 DNS 伺服器是誰之後,順手問問它的版本——說不定版本太舊有漏洞可以利用:
dig CH TXT version.bind 10.129.227.211
CH:專門用來查 DNS 伺服器本身的資訊TXT version.bind:問 DNS 伺服器「你是什麼版本?」

REFUSED——這台 DNS 伺服器拒絕回答版本查詢QQ
dig any cronos.htb @10.129.227.211
any:嘗試一次查詢多種 DNS 記錄,快速看看這個網域目前有哪些資訊可以取得
為什麼在 Zone Transfer (有機會拿到子網域大禮包)前先查 any?
dig any 可以看到一些 Zone Transfer 不一定會給的資訊:
接下來做 Zone Transfer ,試著看能不能拿到子網域清單!
知道 DNS 伺服器之後,直接試試看 Zone Transfer:
dig axfr cronos.htb @10.129.227.211
dig:DNS 查詢工具axfr:Zone Transfer 的請求——告訴 DNS 伺服器「把整個 Zone 的所有記錄全部給我」cronos.htb:要查詢的目標網域@10.129.227.211:直接問這台機器,不去問 Google(假網域,公開 DNS 不認識)
一起看看我們拿到什麼!
cronos.htb. IN SOA cronos.htb. admin.cronos.htb. ... ← 開頭 SOA
cronos.htb. IN NS ns1.cronos.htb. ← DNS 伺服器
cronos.htb. IN A 10.10.10.13 ← 主網域
admin.cronos.htb. IN A 10.10.10.13 ← 管理介面
ns1.cronos.htb. IN A 10.10.10.13 ← DNS 伺服器
www.cronos.htb. IN A 10.10.10.13 ← 一般網站
cronos.htb. IN SOA cronos.htb. admin.cronos.htb. ... ← 結尾 SOA
拿到整個 cronos.htb 的地圖!
今天 Zone Transfer 成功了——但為什麼?
代表這台 DNS Server 對我們的 AXFR 請求沒有做足夠的限制。
DNS Server 通常應該透過 allow-transfer 等設定,只允許受信任的 DNS Server 進行 Zone Transfer;如果限制過於寬鬆,就可能讓未授權的人取得整個 Zone。
今天 Cronos 的 Zone Transfer 成功了,但不是每台機器都這麼好運,如果Zone Transfer 失敗,可以改用 DNSenum (裡面也包含Zone Transfer資訊)
dnsenum --dnsserver 10.129.227.211 --enum -p 0 -s 0 -o subdomains.txt -f /opt/useful/seclists/Discovery/DNS/subdomains-top1million-110000.txt cronos.htb
| 參數 | 說明 |
|---|---|
--dnsserver 10.129.227.211 |
指定用靶機的 DNS 伺服器查——不去問 Google |
--enum |
完整列舉模式——自動查 NS、MX、嘗試 Zone Transfer、暴力猜子網域 |
-p 0 |
不爬 Google 搜尋結果(靶機網域在 Google 查不到) |
-s 0 |
不爬其他網站 |
-o subdomains.txt |
結果存到檔案,方便之後查閱 |
-f /opt/useful/... |
用這個字典檔暴力猜——裡面有 110000 個常見子網域名稱 |
cronos.htb |
目標網域 |



/etc/hosts先把今天找到的子網域都記下來,加進 /etc/hosts,明天我們才能用瀏覽器進 admin.cronos.htb 看看有什麼我們感興趣的東西!
echo "10.129.227.211 cronos.htb www.cronos.htb admin.cronos.htb ns1.cronos.htb" | sudo tee -a /etc/hosts;cat /etc/hosts | grep cronos
echo "10.129.227.211 cronos.htb www.cronos.htb admin.cronos.htb ns1.cronos.htb" :把這串文字輸出出來——「IP + 所有子網域」放在同一行,告訴電腦「這些名字都對應這個 IP」。
| sudo tee -a /etc/hosts
|:把剛才 echo 的文字送給下一個指令處理sudo:用 root 權限執行(/etc/hosts 是系統檔案,一般使用者不能改)tee:一邊顯示在螢幕上(讓我們確認加了什麼),一邊寫進檔案-a:append,附加到檔案最後面,不是覆蓋整個檔案然後確認有沒有成功加進去:
cat /etc/hosts | grep cronos
cat /etc/hosts:把 /etc/hosts 的內容全部印出來| grep cronos:只顯示包含「cronos」的那幾行
確認加進去了
拿到子網域清單之後,不是每個都要看——先判斷哪個最有價值:
| 子網域 | 為什麼值得看? |
|---|---|
admin.cronos.htb |
看起來像管理者介面,可能有登入頁面,攻入後拿到的權限可能較高 |
www.cronos.htb |
看起來像一般首頁,跟admin.cronos.htb比可能攻入價值較低 |
ns1.cronos.htb |
DNS 伺服器,已經用它做完所有 DNS 查詢了,不是 Web 服務 |
cronos.htb |
看起來像一般首頁,跟admin.cronos.htb比可能攻入價值較低 |
admin.cronos.htb 最值得深入 : 看起來是管理介面,通常比一般頁面更值得優先調查,可能存在登入功能、管理功能或其他有價值的攻擊面!
今天是我第一次真正開始思考 DNS 到底能幫我們找到什麼資訊!
之前在分析 EDR 告警時,也曾遇過主機連到惡意 DNS 伺服器的alert,但當時比較像在處理告警,沒有真的去理解 DNS 背後的機制 ><
今天第一次碰到 Zone Transfer,才發現 DNS 裡面還有這麼多眉眉角角。
看到 port 53,一路查下去,竟然可以把這個 zone 裡記錄的子網域一次撈出來!
如果 DNS Server 的 Zone Transfer 沒有限制好,攻擊者就可能一次取得大量 DNS 記錄!!!不用自己慢慢猜子網域xddd
以前覺得「DNS 就是查 IP 用的」,現在才知道它其實也可以成為我們做information gathering時的助手~
今天終於把之前在 Forest 略過的 DNS 搞懂了一點點!
明天就來針對今天找到的 admin.cronos.htb,往 Web 方向挖下去~
明天見啦~~~